package com.wkbb.sports.feign;

import com.github.pagehelper.PageInfo;
import com.wkbb.common.constants.VersionConstant;
import com.wkbb.common.dto.ResultDTO;
import com.wkbb.common.dto.basic.*;
import com.wkbb.sports.model.MetaverseActivityLocation;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;
import java.util.Map;

@FeignClient(name = "wkbb-basic-service")
public interface BasicFeignService
{
    @ApiOperation(value = "批量加入班级(非常规班)")
    @RequestMapping(value = "/basic/v1/open/getOrgClassList", method = RequestMethod.GET)
    ResultDTO<List<ClassInfoDto>> getOrgClassList(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "年级ID", required = true) @RequestParam(name = "gradeId", required = true) Long gradeId,
            @ApiParam(value = "是否为常规班") @RequestParam(name = "isRoutine", required = false) Boolean isRoutine
    );

    @ApiOperation(value = "提交学生人脸识别数据")
    @RequestMapping(value = "/basic/v1/open/insertStudentFaceRecognition", method = RequestMethod.POST)
    ResultDTO<?> insertStudentFaceRecognition(
            @Valid @RequestBody StudentFaceRecognition data);

    @ApiOperation(value = "修改手机号")
    @RequestMapping(value = "/basic/v1/open/changeMobile", method = RequestMethod.POST)
    ResultDTO<?> changeMobile(
            @Valid @RequestBody UserDto userDto);

    @ApiOperation(value = "修改学生")
    @RequestMapping(value = "/basic/v1/open/updateStudentNew", method = RequestMethod.POST)
    ResultDTO<StudentInfoDto> updateStudentNew(
            @Valid @RequestBody StudentInfoDto studentInfoDto);

    @ApiOperation(value = "添加学生")
    @RequestMapping(value = "/basic/v1/open/addStudentNew", method = RequestMethod.POST)
    ResultDTO<StudentInfoDto> addStudent(
            @ApiParam(value = "手机号", required = true) @RequestParam(name = "mobile", required = true) String mobile,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId,
            @Valid @RequestBody StudentInfoDto studentInfoDto);

    @ApiOperation(value = "微信登录")
    @RequestMapping(value = "/basic/v1/open/wxLogin", method = RequestMethod.POST)
    ResultDTO<UserDto> wxLogin(@RequestBody UserDto userDto);

    @ApiOperation(value = "根据家长ID获取学生列表接口")
    @RequestMapping(value = "/basic/v1/open/getStudentInfoByFamily", method = RequestMethod.GET)
    ResultDTO<List<StudentInfoDto>> getStudentInfoByFamily(
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "根据家长获取单个学生信息接口")
    @RequestMapping(value = "/basic/v1/open/getStudentByFamily", method = RequestMethod.GET)
    ResultDTO<StudentInfoDto> getStudentByFamily(
            @ApiParam(value = "学生ID", required = true) @RequestParam(name = "studentUserId", required = true) Long studentUserId,
            @ApiParam(value = "家长ID", required = false) @RequestParam(name = "familyUserId", required = false) Long familyUserId);

    @ApiOperation(value = "根据账号密码获取用户机构")
    @RequestMapping(value = "/basic/v1/open/getStudentList", method = RequestMethod.GET)
    ResultDTO<List<StudentInfoDto>> getStudentList(
            @ApiParam(value = "机构id", required = false) @RequestParam(name = "orgId", required = false) Long orgId,
            @ApiParam(value = "班级id", required = false) @RequestParam(name = "classId", required = false) Long classId);

    @ApiOperation(value = "根据账号密码获取用户机构")
    @RequestMapping(value = "/basic/v1/open/getEmloyeeByPwd", method = RequestMethod.GET)
    ResultDTO<EmployeeInfoDto> getEmloyeeByPwd(
            @ApiParam(value = "账号", required = true) @RequestParam(name = "account", required = true) String account,
            @ApiParam(value = "密码", required = true) @RequestParam(name = "password", required = true) String password);

    @ApiOperation(value = "查询老师班级列表")
    @RequestMapping(value = "/basic/v1/open/getTeacherClassList", method = RequestMethod.GET)
    ResultDTO<List<ClassInfoDto>> getTeacherClassList(
            @ApiParam(value = "机构id", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "老师id", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "查询全校班级列表(不分页)")
    @RequestMapping(value = "/basic/v1/open/getClassListByOrg", method = RequestMethod.GET)
    ResultDTO<List<ClassInfo>> getClassListByOrg(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);

	@ApiOperation(value = "操作用户并返回用户信息")
    @RequestMapping(value = "/basic/v1/open/doUserByOpen", method = RequestMethod.POST)
    ResultDTO<UserDto> doUserByOpen(
            @ApiParam(value = "登录类型(1公众号 2小程序)", required = true) @RequestParam(name = "loginType", required = true) Integer loginType,
            @ApiParam(value = "是否强制刷新", required = false, defaultValue = "false") @RequestParam(name = "forceRefresh", required = false) Boolean forceRefresh,
            @ApiParam(value = "是否路由模式", required = false, defaultValue = "false") @RequestParam(name = "routeFlag", required = false) Boolean routeFlag,
            @ApiParam(value = "小程序(0微看 1访客 2体育)", required = false, defaultValue = "0") @RequestParam(name = "miniApp", required = false) Integer miniApp,
            @RequestBody UserDto userDto);

    @ApiOperation(value = "后台用户登录")
    @RequestMapping(value = "/basic/v1/user/manage/loginByPwd", method = RequestMethod.GET)
    ResultDTO<List<UserDto>> loginByPwd(
            @ApiParam(value = "账号", required = false) @RequestParam(name = "account", required = false) String account,
            @ApiParam(value = "密码", required = false) @RequestParam(name = "password", required = false) String password);

    @ApiOperation(value = "后台用户登录生成token")
    @RequestMapping(value = "/basic/v1/user/manage/getLoginToken", method = RequestMethod.GET)
    ResultDTO<String> getLoginToken(
            @ApiParam(value = "账户ID", required = false) @RequestParam(name = "accountId", required = false) Long accountId,
            @ApiParam(value = "组织ID", required = false) @RequestParam(name = "orgId", required = false) Long orgId,
            @ApiParam(value = "用户ID", required = false) @RequestParam(name = "userId", required = false) Long userId);

    @ApiOperation(value = "后台用户查询菜单(对外)")
    @RequestMapping(value = "/basic/v1/user/manage/getOpenMenuTreeList", method = RequestMethod.GET)
    ResultDTO<List<SysFunctionDto>> getOpenMenuTreeList(@ApiParam(value = "token", required = true) @RequestParam(name = "token", required = true) String token);

    @ApiOperation(value = "根据组织类型查询组织信息接口")
    @RequestMapping(value = "/basic/v1/open/getOrgByType", method = RequestMethod.GET)
    ResultDTO<List<OrganizationDto>> getOrgByType(@ApiParam(value = "组织类型", required = true) @RequestParam(name = "orgType", required = true) Integer orgType);

    @ApiOperation(value = "根据教育局查询学校信息接口")
    @RequestMapping(value = "/basic/v1/open/getOrgByEducation", method = RequestMethod.GET)
    ResultDTO<List<OrganizationDto>> getOrgByEducation(@ApiParam(value = "教育局ID", required = true) @RequestParam(name = "educationId", required = true) Long educationId);

    @ApiOperation(value = "根据ID查询组织信息接口")
    @RequestMapping(value = "/basic/v1/open/getOrgById", method = RequestMethod.GET)
    ResultDTO<OrganizationDto> getOrgById(@ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);

    @ApiOperation(value = "统计各类型学校个数")
    @RequestMapping(value = "/basic/v1/open/getOrgCountStatByOrgan", method = RequestMethod.GET)
    ResultDTO<List<Map<String, Object>>> getOrgCountStatByOrgan(@ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);

    @ApiOperation(value = "根据学校类型查询年级列表")
    @RequestMapping(value = "/basic/v1/open/getGradeInfoList", method = RequestMethod.GET)
    ResultDTO<List<GradeDto>> getGradeInfoList(
            @ApiParam(value = "年级类型(1幼儿园 2小学 3中职 4初中 5高中 6高职 7本科 8完中 9九年一贯 10十二年一贯)", required = true) @RequestParam(name = "gradeType", required = true) Integer gradeType);

    @ApiOperation(value = "查询年级")
    @RequestMapping(value = "/basic/v1/open/getGrade", method = RequestMethod.GET)
    ResultDTO<GradeDto> getGrade(@ApiParam(value = "年级ID", required = true) @RequestParam(name = "gradeId", required = true) Long gradeId);

    @ApiOperation(value = "年级列表")
    @RequestMapping(value = "/basic/v1/open/getGradeList", method = RequestMethod.GET)
    ResultDTO<List<GradeDto>> getGradeList(
            @ApiParam(value = "组织ID", required = false) @RequestParam(name = "orgId", required = false) Long orgId,
            @ApiParam(value = "年级类型(1幼儿园 2小学 3中职 4初中 5高中 6高职 7本科 8完中 9九年一贯 10十二年一贯)", required = false) @RequestParam(name = "gradeType", required = false) Integer gradeType);

    @ApiOperation(value = "根据名称查询年级")
    @RequestMapping(value = "/basic/v1/open/getGradeByName", method = RequestMethod.GET)
    ResultDTO<GradeDto> getGradeByName(
            @ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "年级名称", required = true) @RequestParam(name = "gradeName", required = true) String gradeName);

    @ApiOperation(value = "获取班级年级树形结构")
    @RequestMapping(value = "/basic/v1/open/getClassTree", method = RequestMethod.GET)
    ResultDTO<List<GradeTreeDto>> getClassTree(@ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);

    @ApiOperation(value = "查询班级详情")
    @RequestMapping(value = "/basic/v1/open/getClassInfo", method = RequestMethod.GET)
    ResultDTO<ClassInfoDto> getClassInfo(
            @ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "班级ID", required = true) @RequestParam(name = "id", required = true) Long classId);

    @ApiOperation(value = "根据名称查询班级")
    @RequestMapping(value = "/basic/v1/open/getClassByName", method = RequestMethod.GET)
    ResultDTO<ClassInfoDto> getClassByName(
            @ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "年级ID", required = true) @RequestParam(name = "gradeId", required = true) Long gradeId,
            @ApiParam(value = "班级名称", required = true) @RequestParam(name = "className", required = true) String className);

    @ApiOperation(value = "根据用户获取班级列表接口")
    @RequestMapping(value = "/basic/v1/open/getClassListByUser", method = RequestMethod.GET)
    ResultDTO<List<ClassInfoDto>> getClassListByUser(
            @ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId,
            @ApiParam(value = "用户角色", required = true) @RequestParam(name = "roleType", required = true) Integer roleType);
    
    
    @ApiOperation(value = "根据年级获取班级列表接口")
    @RequestMapping(value = "/basic/v1/open/getClassListByGrade", method = RequestMethod.GET)
    ResultDTO<List<ClassInfoDto>> getClassListByGrade(
            @ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId,
            @ApiParam(value = "用户角色", required = true) @RequestParam(name = "roleType", required = true) Integer roleType);

    @ApiOperation(value = "根据ID获取用户接口")
    @RequestMapping(value = "/basic/v1/open/getUserById", method = RequestMethod.GET)
    ResultDTO<UserInfoDto> getUserById(@ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "根据手机号获取用户接口")
    @RequestMapping(value = "/basic/v1/open/getUserByMobile", method = RequestMethod.GET)
    ResultDTO<UserInfoDto> getUserByMobile(@ApiParam(value = "手机号", required = true) @RequestParam(name = "mobile", required = true) String mobile);

    @ApiOperation(value = "根据手机号获取用户信息接口")
    @RequestMapping(value = "/basic/v1/open/getUserInfoByMobile", method = RequestMethod.GET)
    ResultDTO<UserDto> getUserInfoByMobile(
            @ApiParam(value = "账户ID", required = false) @RequestParam(name = "accountId", required = false) Long accountId,
            @ApiParam(value = "手机号", required = true) @RequestParam(name = "mobile", required = true) String mobile);

    @ApiOperation(value = "根据手机号查询员工详情")
    @RequestMapping(value = "/basic/v1/open/getEmployeeByMobile", method = RequestMethod.GET)
    ResultDTO<EmployeeInfoDto> getEmployeeByMobile(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "手机号", required = true) @RequestParam(name = "mobile", required = true) String mobile);

    @ApiOperation(value = "获取第三方用户微信号")
    @RequestMapping(value = "/basic/v1/open/getSmartWxUserIdByUserId", method = RequestMethod.GET)
    ResultDTO<UserSmartDto> getSmartWxUserIdByUserId(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "用户类型", required = true) @RequestParam(name = "roleType", required = true) Integer roleType,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "查询学生所有家长信息")
    @RequestMapping(value = "/basic/v1/open/getGuardianInfo", method = RequestMethod.GET)
    ResultDTO<List<UserInfoDto>> getGuardianInfo(@ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "查询员工详情")
    @RequestMapping(value = "/basic/v1/open/getEmployeeInfo", method = RequestMethod.GET)
    ResultDTO<EmployeeInfoDto> getEmployeeInfo(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "员工id", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "根据工号查询教师信息")
    @RequestMapping(value = "/basic/v1/open/getEmployeeByTeacherNo", method = RequestMethod.GET)
    ResultDTO<EmployeeInfoDto> getEmployeeByTeacherNo(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "工号", required =true) @RequestParam(name = "teacherNo", required = true) String teacherNo);

    @ApiOperation(value = "查询学生分页列表")
    @RequestMapping(value = "/basic/v1/open/getStudentPageList", method = RequestMethod.GET)
    ResultDTO<PageInfo<StudentInfoDto>> getStudentPageList(
            @ApiParam(value = "用户ID", required = false) @RequestParam(name = "userId", required = false) Long userId,
            @ApiParam(value = "学号", required = false) @RequestParam(name = "studentNo", required = false) String studentNo,
            @ApiParam(value = "学生姓名", required = false) @RequestParam(name = "name", required = false) String name,
            @ApiParam(value = "性别", required = false) @RequestParam(name = "sex", required = false) String sex,
            @ApiParam(value = "手机号", required = false) @RequestParam(name = "mobile", required = false) String mobile,
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "年级ID", required = false) @RequestParam(name = "gradeId", required = false) Long gradeId,
            @ApiParam(value = "班级ID", required = false) @RequestParam(name = "classId", required = false) Long classId,
            @ApiParam(value = "页码", required = false) @RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
            @ApiParam(value = "每页条数", required = false) @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize);

    @ApiOperation(value = "查询学生信息")
    @RequestMapping(value = "/basic/v1/open/getStudentInfoByStudent", method = RequestMethod.GET)
    ResultDTO<List<StudentInfoDto>> getStudentInfoByStudent(
            @ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "查询班级学生列表")
    @RequestMapping(value = "/basic/v1/open/getStudentInfoListByClassId", method = RequestMethod.GET)
    ResultDTO<List<StudentInfoDto>> getStudentInfoListByClassId(
            @ApiParam(value = "学校ID", required = false) @RequestParam(name = "orgId", required = false) Long orgId,
            @ApiParam(value = "班级ID", required = true, defaultValue = "1") @RequestParam(name = "classId", required = true) Long classId);

    @ApiOperation(value = "根据学号查询学生信息")
    @RequestMapping(value = "/basic/v1/open/getStudentByStudentNo", method = RequestMethod.GET)
    ResultDTO<StudentInfoDto> getStudentByStudentNo(
            @ApiParam(value = "学校ID", required = false) @RequestParam(name = "orgId", required = false) Long orgId,
            @ApiParam(value = "学生ID", required = false) @RequestParam(name = "studentId", required = false) Long studentId,
            @ApiParam(value = "用户ID", required = false) @RequestParam(name = "userId", required = false) Long userId,
            @ApiParam(value = "学号", required =false) @RequestParam(name = "studentNo", required = false) String studentNo);

    @ApiOperation(value = "根据年级查询学生列表")
    @RequestMapping(value = "/basic/v1/open/getGradeStudentList", method = RequestMethod.GET)
    ResultDTO<List<StudentInfoDto>> getGradeStudentList(
            @ApiParam(value = "学校ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId,
            @ApiParam(value = "年级ID", required = true) @RequestParam(name = "gradeId", required = true) Long gradeId,
            @ApiParam(value = "性别", required = false) @RequestParam(name = "sex", required = false) String sex);
    
    @ApiOperation(value = "家长绑定学生")
    @RequestMapping(value = "/basic/v1/open/bindStudent", method = RequestMethod.POST)
    ResultDTO<StudentInfoDto> bindStudent(
    		@ApiParam(value = "学号", required = true) @RequestParam(name = "studentNo", required = true) String studentNo,
    		@ApiParam(value = "姓名", required = true) @RequestParam(name = "studentName", required = true) String studentName,
            @ApiParam(value = "班级邀请码", required = true) @RequestParam(name = "inviteCode", required = true) String inviteCode,
            @ApiParam(value = "手机号", required = true) @RequestParam(name = "mobile", required = true) String mobile,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "家长解除绑定")
    @RequestMapping(value = "/basic/v1/open/unbindStudent", method = RequestMethod.POST)
    ResultDTO<StudentInfoDto> unbindStudent(
    		@ApiParam(value = "学生ID", required = true) @RequestParam(name = "studentId", required = true) Long studentId,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "扫码绑定学生")
    @RequestMapping(value = "/basic/v1/open/bindStudentByQRCode", method = RequestMethod.POST)
    ResultDTO<StudentInfoDto> bindStudentByQRCode(
            @ApiParam(value = "手机号", required = true) @RequestParam(name = "mobile", required = true) String mobile,
            @ApiParam(value = "用户ID", required = true) @RequestParam(name = "userId", required = true) Long userId,
            @Valid @RequestBody StudentInfoDto student);

    @ApiOperation(value = "获取h5版本号")
    @RequestMapping(value = "/basic/v1/open/getH5Version", method = RequestMethod.GET)
    ResultDTO<String> getH5Version();

    @ApiOperation(value = "绑定用户接口")
    @RequestMapping(value = "/basic/v1/open/bindUser", method = RequestMethod.GET)
    ResultDTO<Boolean> bindUser(
            @ApiParam(value = "accountId", required = true) @RequestParam(name = "accountId", required = true) Long accountId,
            @ApiParam(value = "visitorUserId", required = true) @RequestParam(name = "visitorUserId", required = true) Long visitorUserId,
            @ApiParam(value = "realUserId", required = true) @RequestParam(name = "realUserId", required = true) Long realUserId);

    @ApiOperation(value = "获取user的union信息接口")
    @RequestMapping(value = "/basic/v1/open/getUnionInfo", method = RequestMethod.GET)
    ResultDTO<UserUnionDto> getUnionInfo(
            @ApiParam(value = "账号ID", required = false) @RequestParam(name = "accountId", required = false) Long accountId,
            @ApiParam(value = "unionId", required = true) @RequestParam(name = "unionId", required = true) String unionId,
            @ApiParam(value = "userId", required = true) @RequestParam(name = "userId", required = true) Long userId);

    @ApiOperation(value = "获取user的union信息接口")
    @RequestMapping(value = "/basic/v1/open/getUserUnionList", method = RequestMethod.GET)
    ResultDTO<List<UserUnionDto>> getUserUnionList(
            @ApiParam(value = "账号ID", required = false) @RequestParam(name = "accountId", required = false) Long accountId,
            @ApiParam(value = "unionId", required = false) @RequestParam(name = "unionId", required = false) String unionId,
            @ApiParam(value = "userId", required = false) @RequestParam(name = "userId", required = false) Long userId);

    @ApiOperation(value = "清除游客登录信息")
    @RequestMapping(value = "/basic/v1/open/clearVisitorLogin", method = RequestMethod.POST)
    ResultDTO clearVisitorLogin(
            @ApiParam(value = "登录类型", required = true) @RequestParam(name = "type", required = true) Integer type,
            @ApiParam(value = "公众号ID", required = true) @RequestParam(name = "accountId", required = true) Long accountId,
            @ApiParam(value = "用户ID", required = true) @RequestParam(value = "userId", required = true) Long userId,
            @ApiParam(value = "unionId", required = true) @RequestParam(name = "unionId", required = true) String unionId);

    @ApiOperation(value = "统计学校总体数据")
    @RequestMapping(value = "/basic/v1/open/getOrgDataStat", method = RequestMethod.GET)
    ResultDTO<List<Map<String, Object>>> getOrgDataStat(@ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);

    @ApiOperation(value = "统计学校总体数据")
    @RequestMapping(value = "/basic/v1/open/getOrgDataCount", method = RequestMethod.GET)
    ResultDTO<Map<String, Integer>> getOrgDataCount(@ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);

    @ApiOperation(value = "查询省份/城市/(县/镇)列表")
    @RequestMapping(value = "/basic/v1/open/getDistrictList", method = RequestMethod.GET)
    ResultDTO<List<DistrictDto>> getDistrictList(
            @ApiParam(value = "parentCode(获取省份parentCode填0)", required = true) @RequestParam(name = "parentCode", required = true) Integer parentCode,
            @ApiParam(value = "type(城市的类型，0国家，1省份，2城市，3区镇)", required = true) @RequestParam(name = "type", required = true) Integer type);

    @ApiOperation(value = "根据名称查询省份/城市/(县/镇)")
    @RequestMapping(value = "/basic/v1/open/findDistrict", method = RequestMethod.GET)
    ResultDTO<DistrictDto> findDistrict(
            @ApiParam(value = "名称", required = true) @RequestParam(name = "name", required = true) String name,
            @ApiParam(value = "type(城市的类型，0国家，1省份，2城市，3区镇)", required = true) @RequestParam(name = "type", required = true) Integer type);

    @ApiOperation(value = "查询城市下的学校")
    @RequestMapping(value = "/basic/v1/open/getOrgListByCity", method = RequestMethod.GET)
    ResultDTO<List<OrganizationDto>> getOrgListByCity(@ApiParam(value = "组织ID", required = true) @RequestParam(name = "orgId", required = true) Long orgId);
    
    
    @ApiOperation(value = "验证码短信")
    @RequestMapping(value = "/basic/v1/open/sendCloudVerifySms", method = RequestMethod.POST)
    ResultDTO sendCloudVerifySms(
            @ApiParam(value = "短信来源(1.微看 2.因时 3.普迪)", required = true) @RequestParam(name = "origin", required = true) Integer origin,
            @ApiParam(value = "短信验证码类型(1.登录 9.其他服务)", required = true) @RequestParam(name = "type", required = true) Integer type,
            @ApiParam(value = "手机号码", required = true) @RequestParam(name = "mobile", required = true) String mobile);

}